package com.zhongwang.business.module.basic.service;


import com.zhongwang.business.constant.Constant;
import com.zhongwang.business.module.basic.dao.DeptDao;
import com.zhongwang.business.module.basic.model.DeptModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

import static com.zhongwang.business.constant.Constant.STATUS_NORMAL;


@Service
public class DeptBasicService {

    @Autowired
    private DeptDao deptDao;

    public List<DeptModel> selectList(String name){
        return  deptDao.selectAll(name);
    }


    /**
     * 修改部门
     *
     * @param dept 部门信息
     * @return 影响行数
     */
    public int updateDept(DeptModel dept) {
        dept.setStatus(STATUS_NORMAL);
        return deptDao.saveAndFlush(dept);
    }

    /**
     * 按部门名称查询部门
     *
     * @param name 部门名称
     * @return 部门信息
     */
    public DeptModel findDeptByName(String name) {
        return deptDao.findByName(name);
    }

    /**
     * 保存部门信息
     *
     * @param dept 部门信息
     * @return 影响行数
     */
    public int saveDept(DeptModel dept) {
        dept.setStatus(STATUS_NORMAL);
        return deptDao.save(dept);
    }

    /**
     * 查询用户所在部门
     *
     * @param id 用户 id
     * @return List
     */
//    public List<DeptModel> findDeptCheckedByUserId(Integer id) {
//        List<DeptModel> all = deptDao.findByCondition(new DeptModel());
//        DeptModel dept = deptDao.findByUserId(id);
//        if (null != dept) {
//            for (DeptModel o : all) {
//                if (o.getId().equals(dept.getId())) {
////                    o.setCheckFlag(true);
//                    break;
//                }
//            }
//        }
//        return all;
//    }

    /**
     * 删除部门
     *
     * @param id 部门
     * @return 影响行数
     */
    public int delDept(Integer id) {
        return deptDao.updateStatusByIdWithRecursion(id, Constant.STATUS_DELETE);
    }

    /**
     * 查询顶级部门
     *
     * @return List
     */
//    public List<DeptModel> findAllTopLevelDept() {
//        return deptDao.findAllTopLevelDept();
//    }


}
